Print

Enchanting On Linux

This page has notes for the experimental Linux version of Enchanting, which should work for x86 and x64 versions of Ubuntu Linux, and hopefully other distributions. If this doesn't work, see the more detailed (albeit dated) instructions at The Ubuntu Development Guide; also see the leJOS tutorial on setting things up for Linux(external link). These steps are untested, as I haven't made time to wipe one of my Linux computers to try them from a pristine condition.

The linux build is a .tar.bz2 file. It is not properly packaged for your distro yet in a way that specifies dependencies. (Some work was done towards making RPMs, but it has not been integrated into the trunk. If anyone would like to help, please say so).

You'll need to install the following dependencies:

  • a Java developer's kit. (Oracle's Java should be fine, but I openJDK or Apache Harmony are likely to work.)
  • libusb 0.1 (0.1.12 or 0.1.14, most likely; not libusb 1.0)
  • libbluetooth (or is it just called bluez?)

I'm not sure if you'll have to set any environment variables. Enchanting tries to figure them out, and your packaging system may set them for you.

There are a couple of one-time steps.

Tell UDEV to grant you access to the NXT via USB. (This will likely vary depending upon your distro).

sudo -s  # Enter password to become root
  # blacklisting note courtesy of http://ubuntuforums.org/showthread.php?t=1123633
  echo "" >> /etc/modprobe.d/blacklist.conf
  echo "blacklist cdc_adm" >> /etc/modprobe.d/blacklist.conf
  echo -e '# LEGO Mindstorms NXT\nBUS=="usb", SYSFS{idVendor}=="03eb", GROUP="plugdev", MODE="0660"\nBUS=="usb", SYSFS{idVendor}=="0694", GROUP="plugdev", MODE="0660"' > /etc/udev/rules.d/mindstorms-nxt.rules
  exit


You may need to flash the firmware on your NXT outside of Enchanting. (It didn't work previously under Linux from within Enchanting.)

source /path/to/Enchanting/BackEnd/set_env.sh 
nxjflashg


Once you've done that, everything is built and you should be able to invoke ./verbose_enchanting.linux.sh.